home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / bin / bf_tar-bdb < prev    next >
Text File  |  2009-06-05  |  2KB  |  73 lines

  1. #! /bin/sh
  2.  
  3. # This file dumps a bogofilter to standard output in POSIX-tar format.
  4. #
  5. # Requires: pax
  6. #
  7. # (C) 2004 by Matthias Andree
  8. # GNU GPL v2.
  9.  
  10. # $Id: bf_tar.in 6750 2008-10-15 23:18:45Z clint $
  11.  
  12. set -e
  13.  
  14. : ${BOGOFILTER:=bogofilter}
  15. : ${BOGOUTIL:=bogoutil}
  16.  
  17. REMOVEBEF=0
  18. REMOVEAFT=0
  19. while [ "$1" ] ; do
  20.     case "$1" in
  21.     -r) REMOVEAFT=1 ;;
  22.     -R) REMOVEBEF=1 ;;
  23.     --) shift ; break ;;
  24.     -*) echo >&2 "`basename $0`: unknown option $1" ; exit 1 ;;
  25.     *) break;
  26.     esac
  27.     shift
  28. done
  29.  
  30. if [ $# -ne 1 ] ; then
  31.     echo >&2 "Usage: `basename $0` [options] bogodir > outfile.tar"
  32.     echo >&2 "   or: `basename $0` [options] bogodir | gzip -c >outfile.tar.gz"
  33.     echo >&2 'Options are:'
  34.     echo >&2 ' -r - remove inactive log files after archiving'
  35.     echo >&2 ' -R - remove inactive log files before archiving (use with caution)'
  36.     exit 1
  37. fi
  38.  
  39. # we could write $1 for the moment being as we demand exactly this
  40. # argument above [ $# -ne 1 ]
  41. BOGOHOME=${1:-.}
  42.  
  43. if [ ! -d "$BOGOHOME" ] ; then
  44.     echo $BOGOHOME must be a directory, not a file
  45.     exit 1
  46. fi
  47.  
  48. nukelogs() {
  49.     $BOGOUTIL --db-prune="$BOGOHOME"
  50. }
  51.  
  52. # remove if requested
  53. if [ $REMOVEBEF -eq 1 ] ; then
  54.     nukelogs
  55. else
  56.     $BOGOUTIL --db-checkpoint="$BOGOHOME"
  57. fi
  58.  
  59. # database first, then the logs.
  60. # the log MUST be newer than the database, if it's the other way around,
  61. # that state will not be recoverable!
  62. #
  63. # pax options: -w: write archive, -v: verbosely, -x ustar: pick tar format.
  64. (
  65.   c="${BOGOHOME}/DB_CONFIG"
  66.   if [ -f "$c" ] ; then echo "$c" ; fi
  67.   $BOGOFILTER -QQ -d "$BOGOHOME" | grep '^wordlist ' | cut -f3 -d,
  68.   $BOGOUTIL --db-list-logfiles="$BOGOHOME" all
  69. ) | pax -w -v -x ustar
  70.  
  71. # remove if requested
  72. if [ $REMOVEAFT -eq 1 ] ; then nukelogs ; fi
  73.